package com.dragon.modules.yuegou.model.busd;

import com.dragon.modules.yuegou.entity.busd.GroupEntity;
import com.dragon.modules.yuegou.enums.busd.GroupStatus;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 集团表模型类
 * 
 * @author pbuilder generated
 * @date 2019-03-18 13:51:47
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class Group extends GroupEntity {

	private static final long serialVersionUID = 1L;
	
	@ApiModelProperty("商圈列表")
	private List<District> districtList;
	
	@ApiModelProperty("地区")
	private String area;//地区
	
	@ApiModelProperty("城市")
	private String city;//城市
	
	@ApiModelProperty("省份")
	private String province;//省份
	
	@ApiModelProperty("地区Id")
	private String areaId;//地区Id
	
	@ApiModelProperty("城市Id")
	private String cityId;//城市Id
	
	@ApiModelProperty("省份Id")
	private String provinceId;//省份Id

	/**
	 * 构造一个空集团表模型对象
	 */
	public Group(){
		super();
	}
	
	/**
	 * 依据实体对象的信息构造一个集团表模型对象
	 * 
	 * @param entity 实体对象
	 */
	public Group(GroupEntity entity){
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个集团表模型对象
	 * 
	 * @param other 其它对象
	 */
	public Group(Group other){
		super(other);
	}


	@Override
	public String getId() {
    	return id;
    }

    /**
	 * 设置ID
	 * 
	 * @param id ID
	 * @return 当前对象
	 */
    public Group id(String id) {
    	this.id = id;
    	return this;
    }
    
    /**
     * 商圈信息
     * */
	public List<District> getDistrictList() {
		return districtList;
	}

	public void setDistrictList(List<District> districtList) {
		this.districtList = districtList;
	}

	/**
	 * 地区名称
	 * */
	public String getArea() {
		return area;
	}

	public void setArea(String area) {
		this.area = area;
	}

	/**
	 * 市名称
	 * */
	public String getCity() {
		return city;
	}

	public void setCity(String city) {
		this.city = city;
	}

	/**
	 * 省名称
	 * */
	public String getProvince() {
		return province;
	}

	public void setProvince(String province) {
		this.province = province;
	}

	/**
	 * 地区Id
	 * */
	public String getAreaId() {
		return areaId;
	}

	public void setAreaId(String areaId) {
		this.areaId = areaId;
	}

	/**
	 * 市Id
	 * */
	public String getCityId() {
		return cityId;
	}

	public void setCityId(String cityId) {
		this.cityId = cityId;
	}

	/**
	 * 省Id
	 * */
	public String getProvinceId() {
		return provinceId;
	}

	public void setProvinceId(String provinceId) {
		this.provinceId = provinceId;
	}

	@Override
	public String getGroupName() {
    	return groupName;
    }

    /**
	 * 设置集团名称
	 * 
	 * @param groupName 集团名称
	 * @return 当前对象
	 */
    public Group groupName(String groupName) {
    	this.groupName = groupName;
    	return this;
    }

	@Override
	public String getContactName() {
    	return contactName;
    }

    /**
	 * 设置联系人
	 * 
	 * @param contactName 联系人
	 * @return 当前对象
	 */
    public Group contactName(String contactName) {
    	this.contactName = contactName;
    	return this;
    }

	@Override
	public String getContactPhone() {
    	return contactPhone;
    }

    /**
	 * 设置联系电话
	 * 
	 * @param contactPhone 联系电话
	 * @return 当前对象
	 */
    public Group contactPhone(String contactPhone) {
    	this.contactPhone = contactPhone;
    	return this;
    }

	@Override
	public String getEmail() {
    	return email;
    }

    /**
	 * 设置email
	 * 
	 * @param email email
	 * @return 当前对象
	 */
    public Group email(String email) {
    	this.email = email;
    	return this;
    }

	@Override
	public String getDomainName() {
    	return domainName;
    }

    /**
	 * 设置
	 * 
	 * @param domainName 
	 * @return 当前对象
	 */
    public Group domainName(String domainName) {
    	this.domainName = domainName;
    	return this;
    }

	@Override
	public String getAreaCode() {
    	return areaCode;
    }

    /**
	 * 设置地址编码
	 * 
	 * @param areaCode 地址编码
	 * @return 当前对象
	 */
    public Group areaCode(String areaCode) {
    	this.areaCode = areaCode;
    	return this;
    }

	@Override
	public String getAddress() {
    	return address;
    }

    /**
	 * 设置详细地址
	 * 
	 * @param address 详细地址
	 * @return 当前对象
	 */
    public Group address(String address) {
    	this.address = address;
    	return this;
    }
    
    @Override
	public String getMiniAppid() {
    	return miniAppid;
    }

    /**
	 * 设置小程序appid 
	 * 
	 * @param miniAppid 小程序appid 
	 * @return 当前对象
	 */
    public Group miniAppid(String miniAppid) {
    	this.miniAppid = miniAppid;
    	return this;
    }

    @Override
	public String getAppId() {
    	return appId;
    }

    /**
	 * 设置App appid
	 * 
	 * @param appId App appid
	 * @return 当前对象
	 */
    public Group appId(String appId) {
    	this.appId = appId;
    	return this;
    }

	@Override
	public String getLogo() {
    	return logo;
    }

    /**
	 * 设置logo 地址
	 * 
	 * @param logo logo 地址
	 * @return 当前对象
	 */
    public Group logo(String logo) {
    	this.logo = logo;
    	return this;
    }

	@Override
	public String getRemark() {
    	return remark;
    }

    /**
	 * 设置备注
	 * 
	 * @param remark 备注
	 * @return 当前对象
	 */
    public Group remark(String remark) {
    	this.remark = remark;
    	return this;
    }

	@Override
	public GroupStatus getStatus() {
    	return status;
    }

    /**
	 * 设置[枚举]状态：0-未激活-INACTIVE、1-已启用-ENABLED、2-禁用-DISABLED
	 * 
	 * @param status [枚举]状态：0-未激活-INACTIVE、1-已启用-ENABLED、2-禁用-DISABLED
	 * @return 当前对象
	 */
    public Group status(GroupStatus status) {
    	this.status = status;
    	return this;
    }

	@Override
	public Integer getBusdQuantity() {
    	return busdQuantity;
    }

    /**
	 * 设置商圈数
	 * 
	 * @param busdQuantity 商圈数
	 * @return 当前对象
	 */
    public Group busdQuantity(Integer busdQuantity) {
    	this.busdQuantity = busdQuantity;
    	return this;
    }

	@Override
	public Integer getUserQuantity() {
    	return userQuantity;
    }

    /**
	 * 设置用户数
	 * 
	 * @param userQuantity 用户数
	 * @return 当前对象
	 */
    public Group userQuantity(Integer userQuantity) {
    	this.userQuantity = userQuantity;
    	return this;
    }

	@Override
	public String getCreatedBy() {
    	return createdBy;
    }

    /**
	 * 设置创建人ID
	 * 
	 * @param createdBy 创建人ID
	 * @return 当前对象
	 */
    public Group createdBy(String createdBy) {
    	this.createdBy = createdBy;
    	return this;
    }

	@Override
	public LocalDateTime getCreatedTime() {
    	return createdTime;
    }

    /**
	 * 设置创建时间
	 * 
	 * @param createdTime 创建时间
	 * @return 当前对象
	 */
    public Group createdTime(LocalDateTime createdTime) {
    	this.createdTime = createdTime;
    	return this;
    }

	@Override
	public String getModifiedBy() {
    	return modifiedBy;
    }

    /**
	 * 设置更新人ID
	 * 
	 * @param modifiedBy 更新人ID
	 * @return 当前对象
	 */
    public Group modifiedBy(String modifiedBy) {
    	this.modifiedBy = modifiedBy;
    	return this;
    }

	@Override
	public LocalDateTime getModifiedTime() {
    	return modifiedTime;
    }

    /**
	 * 设置更新时间
	 * 
	 * @param modifiedTime 更新时间
	 * @return 当前对象
	 */
    public Group modifiedTime(LocalDateTime modifiedTime) {
    	this.modifiedTime = modifiedTime;
    	return this;
    }

	@Override
	public Boolean getDel() {
    	return del;
    }

    /**
	 * 设置逻辑删除，1表示已删除,0表示未删除
	 * 
	 * @param del 逻辑删除，1表示已删除,0表示未删除
	 * @return 当前对象
	 */
    public Group del(Boolean del) {
    	this.del = del;
    	return this;
    }

	@Override
	public String getDelBy() {
    	return delBy;
    }

    /**
	 * 设置删除人ID
	 * 
	 * @param delBy 删除人ID
	 * @return 当前对象
	 */
    public Group delBy(String delBy) {
    	this.delBy = delBy;
    	return this;
    }

	@Override
	public LocalDateTime getDelTime() {
    	return delTime;
    }

    /**
	 * 设置删除时间
	 * 
	 * @param delTime 删除时间
	 * @return 当前对象
	 */
    public Group delTime(LocalDateTime delTime) {
    	this.delTime = delTime;
    	return this;
    }
    
    @Override
	public String getAdminId() {
    	return adminId;
    }

    /**
	 * 设置集团管理员用户ID
	 * 
	 * @param adminId 集团管理员用户ID
	 * @return 当前对象
	 */
    public Group adminId(String adminId) {
    	this.adminId = adminId;
    	return this;
    }

}
